Information storage medium and image control system

ABSTRACT

An image control system controls an image displayed on a display screen of a display section based on a detection value output from a detection section, the detection section outputting the detection value corresponding to a first position when an operation state of a touch operation performed on an operation surface is a first operation state in which a first touch operation is performed at the first position on the operation surface, and outputting the detection value corresponding to a midpoint between the first position and a second position when the operation state is a second operation state in which a second touch operation is performed at the second position on the operation surface in addition to the first touch operation. The image control system includes a correction section that calculates a corrected position when the operation state is the second operation state, one endpoint being indicated by a detected position acquired in the first operation state, a midpoint being indicated by a detected position acquired in the second operation state, and the other endpoint being indicated by the corrected position.

Japanese Patent Application No. 2009-218083 filed on Sep. 18, 2009, ishereby incorporated by reference in its entirety.

BACKGROUND OF THE INVENTION

The present invention relates to an information storage medium and animage control system.

An image control system (image control device) including a touch panelhas been known. When the operator has performed a touch operation on anoperation surface with the fingertip, an indicator, or the like, adetection value corresponding to the position of the touch operation isoutput. An image control system including a touch panel may acquire theposition coordinates on the operation surface based on the detectionvalue from the touch panel, and control the image based on the positioncoordinates.

A touch panel may output a detection value corresponding to one positionwhen the touch operation has been performed at one position on theoperation surface, and output a detection value corresponding to themidpoint between two positions when the touch operation has beenperformed at two positions on the operation surface. Specifically, animage control system including such a touch panel acquires the positioncoordinates of the touch operation when the touch operation has beenperformed at one position on the operation surface, and controls theimage based on the position of the touch operation. However, when thetouch operation has been performed at two positions, the image controlsystem acquires the position coordinates of a position differing fromthe position of the touch operation. Therefore, the image control systemcannot control the image based on the position of the touch operation.In order to deal with such a problem, an image control system thatdetermines that the touch operation has been performed at two positionswhen a large change in position coordinates has occurred, and displaysan alert message, or disregards the touch operation, has been proposed(see JP-A-2006-136638).

Specifically, a related-art image control system using the above touchpanel does not perform a process based on the acquired positioncoordinates when the touch operation has been performed at twopositions.

SUMMARY

According to a first aspect of the invention, there is provided aprogram stored in a non-transitory computer-readable information storagemedium, the program controlling an image displayed on a display screenof a display section based on a detection value output from a detectionsection, the detection section outputting the detection valuecorresponding to a first position when an operation state of a touchoperation performed on an operation surface is a first operation statein which a first touch operation is performed at the first position onthe operation surface, and outputting the detection value correspondingto a midpoint between the first position and a second position when theoperation state is a second operation state in which a second touchoperation is performed at the second position on the operation surfacein addition to the first touch operation, the program causing a computerto function as:

an acquisition section that acquires a detected position based on thedetection value, the detected position indicating a position on theoperation surface;

a state determination section that determines whether the operationstate is the first operation state or the second operation state basedon the detection value;

a correction section that calculates a corrected position when theoperation state is the second operation state, one endpoint beingindicated by the detected position acquired in the first operationstate, a midpoint being indicated by the detected position acquired inthe second operation state, and the other endpoint being indicated bythe corrected position; and

a display control section that controls the image based on the correctedposition.

According to a second aspect of the invention, there is provided aprogram stored in a non-transitory computer-readable information storagemedium, the program controlling an image displayed on a display screenof a display section based on a detection value output from a detectionsection, the detection section outputting the detection valuecorresponding to a first position when an operation state of a touchoperation performed on an operation surface is a first operation statein which a first touch operation is performed at the first position onthe operation surface, and outputting the detection value correspondingto a midpoint between the first position and a second position when theoperation state is a second operation state in which a second touchoperation is performed at the second position on the operation surfacein addition to the first touch operation, the program causing a computerto function as:

an acquisition section that acquires a detected position based on thedetection value, the detected position indicating a position on theoperation surface;

a state determination section that determines whether the operationstate is the first operation state or the second operation state basedon the detection value;

a correction section that calculates a corrected position when theoperation state is the second operation state, one endpoint beingindicated by the detected position in the first operation state, amidpoint being indicated by the detected position in the secondoperation state, and the other endpoint being indicated by the correctedposition;

a position determination section that determines whether or not thecorrected position coincides with a given position; and

a display control section that controls the image.

According to a third aspect of the invention, there is provided anon-transitory computer-readable information storage medium for storingthe program.

According to a fourth aspect of the invention, there is provided animage control system that controls an image displayed on a displayscreen of a display section based on a detection value output from adetection section, the detection section outputting the detection valuecorresponding to a first position when an operation state of a touchoperation performed on an operation surface is a first operation statein which a first touch operation is performed at the first position onthe operation surface, and outputting the detection value correspondingto a midpoint between the first position and a second position when theoperation state is a second operation state in which a second touchoperation is performed at the second position on the operation surfacein addition to the first touch operation, the image control systemcomprising:

an acquisition section that acquires a detected position based on thedetection value, the detected position indicating a position on theoperation surface;

a state determination section that determines whether the operationstate is the first operation state or the second operation state basedon the detection value;

a correction section that calculates a corrected position when theoperation state is the second operation state, one endpoint beingindicated by the detected position acquired in the first operationstate, a midpoint being indicated by the detected position acquired inthe second operation state, and the other endpoint being indicated bythe corrected position; and

a display control section that controls the image based on the correctedposition.

According to a fifth aspect of the invention, there is provided an imagecontrol system that controls an image displayed on a display screen of adisplay section based on a detection value output from a detectionsection, the detection section outputting the detection valuecorresponding to a first position when an operation state of a touchoperation performed on an operation surface is a first operation statein which a first touch operation is performed at the first position onthe operation surface, and outputting the detection value correspondingto a midpoint between the first position and a second position when theoperation state is a second operation state in which a second touchoperation is performed at the second position on the operation surfacein addition to the first touch operation, the image control systemcomprising:

an acquisition section that acquires a detected position based on thedetection value, the detected position indicating a position on theoperation surface;

a state determination section that determines whether the operationstate is the first operation state or the second operation state basedon the detection value;

a correction section that calculates a corrected position when theoperation state is the second operation state, one endpoint beingindicated by the detected position in the first operation state, amidpoint being indicated by the detected position in the secondoperation state, and the other endpoint being indicated by the correctedposition;

a position determination section that determines whether or not thecorrected position coincides with a given position; and

a display control section that controls the image.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING

FIG. 1 is an external view illustrating the appearance of a game systemaccording to one embodiment of the invention.

FIG. 2 is an exploded view illustrating a touch panel of a game systemaccording to one embodiment of the invention.

FIGS. 3A to 3D are diagrams illustrating a process performed by a gamesystem according to one embodiment of the invention.

FIG. 4 is a functional block diagram illustrating a game systemaccording to one embodiment of the invention.

FIG. 5 is a diagram illustrating an example of an image displayed on agame system according to one embodiment of the invention.

FIG. 6 is a diagram illustrating a process performed by a game systemaccording to one embodiment of the invention.

FIG. 7 is a flowchart illustrating the flow of a process performed by agame system according to one embodiment of the invention.

FIG. 8 is a flowchart illustrating the flow of a process performed by agame system according to one embodiment of the invention.

FIG. 9 is a flowchart illustrating the flow of a process performed by agame system according to one embodiment of the invention.

FIGS. 10A to 10D are diagrams illustrating a process performed by a gamesystem according to one embodiment of the invention.

FIGS. 11A to 11C are diagrams illustrating an example of an imagedisplayed on a game system according to one embodiment of the invention.

FIGS. 12A to 12E are diagrams illustrating an example of an imagedisplayed on a game system according to one embodiment of the invention.

FIG. 13 is a diagram illustrating an example of an image displayed on agame system according to one embodiment of the invention.

FIG. 14 is a diagram illustrating an example of an image displayed on agame system according to one embodiment of the invention.

DETAILED DESCRIPTION OF THE EMBODIMENT

The invention may provide a program, an information storage medium andan image control system that enable a process to be performed based onthe position of the touch operation even when the touch operation hasbeen performed at two positions.

(1) One embodiment of the invention relates to an image control systemthat controls an image displayed on a display screen of a displaysection based on a detection value output from a detection section, thedetection section outputting the detection value corresponding to afirst position when an operation state of a touch operation performed onan operation surface is a first operation state in which a first touchoperation is performed at the first position on the operation surface,and outputting the detection value corresponding to a midpoint betweenthe first position and a second position when the operation state is asecond operation state in which a second touch operation is performed atthe second position on the operation surface in addition to the firsttouch operation, the image control system comprising:

an acquisition section that acquires a detected position based on thedetection value, the detected position indicating a position on theoperation surface;

a state determination section that determines whether the operationstate is the first operation state or the second operation state basedon the detection value;

a correction section that calculates a corrected position when theoperation state is the second operation state, one endpoint beingindicated by the detected position acquired in the first operationstate, a midpoint being indicated by the detected position acquired inthe second operation state, and the other endpoint being indicated bythe corrected position; and

a display control section that controls the image based on the correctedposition.

Another embodiment of the invention relates to a program that causes acomputer to function as each of the above sections and a non-transitorycomputer-readable information storage medium for storing such a program.

According to the above embodiments, when the first position in the firstoperation state is maintained when the operation state has transitionedto the second operation state, the corrected position can be calculatedso that the corrected position coincides with the second position.Therefore, when the touch operation has been performed at the secondposition in addition to the first position, the image can be controlledbased on the second position.

(2) Another embodiment of the invention relates to an image controlsystem that controls an image displayed on a display screen of a displaysection based on a detection value output from a detection section, thedetection section outputting the detection value corresponding to afirst position when an operation state of a touch operation performed onan operation surface is a first operation state in which a first touchoperation is performed at the first position on the operation surface,and outputting the detection value corresponding to a midpoint betweenthe first position and a second position when the operation state is asecond operation state in which a second touch operation is performed atthe second position on the operation surface in addition to the firsttouch operation, the image control system comprising:

an acquisition section that acquires a detected position based on thedetection value, the detected position indicating a position on theoperation surface;

a state determination section that determines whether the operationstate is the first operation state or the second operation state basedon the detection value;

a correction section that calculates a corrected position when theoperation state is the second operation state, one endpoint beingindicated by the detected position in the first operation state, amidpoint being indicated by the detected position in the secondoperation state, and the other endpoint being indicated by the correctedposition;

a position determination section that determines whether or not thecorrected position coincides with a given position; and

a display control section that controls the image.

Another embodiment of the invention relates to a program that causes acomputer to function as each of the above sections and a non-transitorycomputer-readable information storage medium for storing such a program.

According to the above embodiments, when the first position in the firstoperation state is maintained when the operation state has transitionedto the second operation state, the corrected position can be calculatedso that the corrected position coincides with the second position.Therefore, when the touch operation has been performed at the secondposition in addition to the first position, whether or not the secondposition coincides with a given position can be determined.

(3) In each of the image control system, the program and the informationstorage medium, the display control section may control the image basedon a determination result of the position determination section.

This makes it possible to control the image based on the secondposition.

(4) In each of the image control system, the program and the informationstorage medium, the correction section may calculate the correctedposition when a new detected position has been acquired in the secondoperation state, one endpoint being indicated by the detected positionacquired in the first operation state, a midpoint being indicated by thedetected position currently acquired in the second operation state, andthe other endpoint being indicated by the corrected position.

According to this configuration, when the first position in the firstoperation state is maintained when the second position has changed inthe second operation state, the corrected position can be calculated sothat the corrected position coincides with the second position.

(5) In each of the image control system, the program and the informationstorage medium, the correction section may calculate the correctedposition when a new detected position has been acquired in the secondoperation state, one endpoint being indicated by the corrected positioninitially calculated in the second operation state, a midpoint beingindicated by the detected position currently acquired in the secondoperation state, and the other endpoint being indicated by the correctedposition.

According to this configuration, when the first position has changed inthe second operation state while the second position is maintained, thecorrected position can be calculated so that the corrected positioncoincides with the first position.

(6) The image control system may further comprise a movement informationcalculation section that calculates movement information about thecorrected position when the corrected position has changed, wherein thedisplay control section may control the image based on the movementinformation about the corrected position.

The program may further cause a computer to function as a movementinformation calculation section that calculates movement informationabout the corrected position when the corrected position has changed,wherein the display control section may control the image based on themovement information about the corrected position.

In the information storage medium, the program may cause the computer tofurther function as a movement information calculation section thatcalculates movement information about the corrected position when thecorrected position has changed, wherein the display control section maycontrol the image based on the movement information about the correctedposition.

This makes it possible to control the image based on the movement of thefirst position or the second position in the second operation state.

(7) The image control system may further comprise a period measurementsection that measures a period of the first operation state, wherein thedisplay control section may control the image based on the period of thefirst operation state.

The program may further cause a computer to function as a periodmeasurement section that measures a period of the first operation state,wherein the display control section may control the image based on theperiod of the first operation state.

In the information storage medium, the program may cause the computer tofurther function as a period measurement section that measures a periodof the first operation state, wherein the display control section maycontrol the image based on the period of the first operation state.

This makes it possible to control the image based on the period of thefirst operation state.

(8) In each of the image control system, the program and the informationstorage medium, the display control section may display a display objectin an overlapping area of the display screen that overlaps the operationsurface, the display object identifying a first area where the firsttouch operation should be performed, and a second area where the secondtouch operation should be performed.

This makes it possible to guide the operator so that the accuracy of theoperation state determination result and the corrected position isimproved.

(9) In each of the image control system, the program and the informationstorage medium, the state determination section may determine that theoperation state is a non-operation state in which the touch operation isnot performed on the operation surface when the detection value is notoutput, may determine that the operation state is the first operationstate when the detection value has been output when the operation stateis the non-operation state, and may determine that the operation stateis the second operation state when a moving amount of the detectedposition has exceeded a first threshold value when the operation stateis the first operation state.

This makes it possible to determine a transition in operation statebetween the non-operation state, the first operation state, and thesecond operation state.

(10) In each of the image control system, the program and theinformation storage medium, the state determination section maydetermine that the operation state is the first operation state when amoving amount of the detected position has exceeded a second thresholdvalue when the operation state is the second operation state.

This makes it possible to determine a transition in operation state fromthe second operation state to the first operation state.

Embodiments of the invention are described below. Note that thefollowing embodiments do not in any way limit the scope of the inventiondefined by the claims laid out herein. Note also that all of theelements described in connection with the following embodiments shouldnot be necessarily taken as essential elements for the invention.

1. Outline

FIG. 1 is an external view illustrating the appearance of a game system10 (i.e., image (display) control system) according to one embodiment ofthe invention. As illustrated in FIG. 1, the game system 10 is formed tobe carried by the player (operator or observer). The player holds thegame system 10, and plays the game. A lower main body 12 and an uppermain body 14 of the game system 10 are connected via a hinge section 16.The lower main body 12 and the upper main body 14 can be rotated aroundthe axis of the hinge section 16. A first liquid crystal display 18 thatdisplays an image on a rectangular first display screen 17 is providedat the center of the lower main body 12. An arrow key 20, first tofourth buttons 22 to 28, a start button 30, and a select button 32 thatallow the player to input operation information are provided around thefirst liquid crystal display 18. A second liquid crystal display 34 thatdisplays an image on a rectangular second display screen 33 is providedat the center of the upper main body 14. A speaker 36 that outputs soundis provided on each side of the second liquid crystal display 34. Amicrophone 38 that allows the player to input sound is provided in thehinge section 16.

A touch panel 40 that detects the position of a touch operationperformed by the player on a rectangular operation surface 39 isdisposed to overlap the first display screen 17 (i.e., overlapping area)of the first liquid crystal display 18. For example, when the player hasbrought the tip of a touch pen 41 illustrated in FIG. 1 into contactwith the operation surface 39, the game system 10 detects the contactposition of the tip of the touch pen 41 with the operation surface 39.This makes it possible for the player to input operation information byperforming a touch operation on the operation surface 39.

The game system 10 determines that the player has selected an itemdisplayed on the first display screen 17 depending on the touch positionon the operation surface 39, generates a character on the first displayscreen 17 or the second display screen 33, causes the character to moveor disappear, or displays a moving path of the touch position on theoperation surface 39 so that the player can draw a character or apicture on the first display screen 17. The game system 10 calculatesthe moving amount, the moving direction, the moving speed, and the likeof the touch position on the operation surface 39 based on the movingpath of the touch position on the operation surface 39.

FIG. 2 is an exploded view illustrating the touch panel 40. Asillustrated in FIG. 2, the touch panel 40 is an analog resistive touchpanel. An X-axis resistive film 42 and a Y-axis resistive film 44 thattransmit light are disposed at a small interval through a spacer so thatthe X-axis resistive film 42 and the Y-axis resistive film 44 areopposite to each other. An X-axis electrode is provided on each end ofthe X-axis resistive film 42 in an X-axis direction, and a Y-axiselectrode is provided on each end of the Y-axis resistive film 44 in aY-axis direction. A voltage is alternately applied between the X-axiselectrodes or the Y-axis electrodes every 1/120th of a second. When theplayer has performed a touch operation on the touch panel 40, the X-axisresistive film 42 is warped so that the X-axis resistive film 42 comesin contact with (is electrically connected to) the Y-axis resistive film44.

For example, when the player has performed a touch operation (i.e.,first touch operation) at a point A (i.e., first position) illustratedin FIG. 2, and the X-axis resistive film 42 has come in contact with theY-axis resistive film 44 at the point A, a voltage (i.e., detectionvalue) divided based on the X-coordinate component at the point A isapplied between the Y-axis electrodes when a voltage is applied betweenthe X-axis electrodes, and a voltage (i.e., detection value) dividedbased on the Y-coordinate component at the point A is applied betweenthe X-axis electrodes when a voltage is applied between the Y-axiselectrodes. The touch panel 40 thus alternately outputs the detectionvalue corresponding to the X-coordinate component at the point A and thedetection value corresponding to the Y-coordinate component at the pointA every 1/120th of a second when the player performs a touch operationat the point A. Specifically, the touch panel 40 outputs the detectionvalue corresponding to the touch position every 1/60th of a second.

When using the analog resistive touch panel 40, however, when the playerhas performed a touch operation (i.e., second touch operation) at apoint B (i.e., second position) in addition to the point A, the X-axisresistive film 42 comes in contact with (is electrically connected to)the Y-axis resistive film 44 at the points A and B. In this case, avoltage divided based on the X-coordinate component at the point A andthe X-coordinate component at the point B is applied between the Y-axiselectrodes when a voltage is applied between the X-axis electrodes, anda voltage (i.e., detection value) divided based on the Y-coordinatecomponent at the point A and the Y-coordinate component at the point Bis applied between the X-axis electrodes when a voltage is appliedbetween the Y-axis electrodes. The voltage divided based on theX-coordinate component at the point A and the X-coordinate component atthe point B is equal to a voltage divided based on the X-coordinatecomponent at a midpoint M between the points A and B, and the voltagedivided based on the Y-coordinate component at the point A and theY-coordinate component at the point B is equal to a voltage dividedbased on the Y-coordinate component at the midpoint M between the pointsA and B. Specifically, when the player has performed a touch operationat the points A and B, the touch panel 40 does not output the detectionvalues corresponding to the touch positions, but outputs the detectionvalue corresponding to the midpoint M between the points A and B.

Therefore, the game system 10 that acquires the coordinates (i.e.,position) on the operation surface 39 based on the detection value fromthe touch panel 40 can acquire the coordinates of the point A when theplayer has performed a touch operation only at the point A, but acquiresthe coordinates of the midpoint M between the points A and B when theplayer has performed a touch operation at the points A and B. In orderto deal with such a problem, the game system 10 determines whether thestate of the touch operation performed on the operation surface 39 is afirst operation state in which the touch operation is performed at oneposition on the operation surface 39, or a second operation state inwhich the touch operation is performed at two positions on the operationsurface 39 (i.e., state determination process). The game system 10determines the detected coordinates corresponding to the detection valuefrom the touch panel 40 to be the coordinates of the touch position whenthe state of the touch operation is the first operation state, anddetermines the detected coordinates corresponding to the detection valuefrom the touch panel 40 to be the coordinates of the midpoint betweenthe two touch positions when the state of the touch operation is thesecond operation state. The game system 10 calculates correctedcoordinates by correcting the detected coordinates (i.e., correctionprocess), and determines the corrected coordinates to be the coordinatesof the touch position.

FIGS. 3A to 3D are diagrams illustrating the state determination processand the correction process. The game system 10 according to thisembodiment acquires the detected coordinates every 1/60th of a second(i.e., acquisition timing). The game system 10 determines that the touchoperation is not performed on the operation surface 39 (non-operationstate) when the detection value is not output from the touch panel 40.When the game system 10 has acquired the detected coordinates of a pointP1 in the non-operation state (see FIG. 3A), the game system 10determines that the touch operation has been performed only at the pointP1 (first operation state). Specifically, the game system 10 determinesthat the touch operation has been performed at one position (firstoperation state) even if the touch operation has been performed at twopositions at the same acquisition timing in the non-operation state, andthe game system 10 has acquired the detected coordinates of the midpointbetween the two positions. Specifically, since the player rarelyperforms the touch operation at two positions at the same acquisitiontiming, the game system 10 determines that the player has brought thetouch pen 41 into contact with the point P1 in the non-operation state.

When the next acquisition timing has been reached in the first operationstate, the game system 10 determines whether or not the distance betweenthe detected coordinates of a point P2 acquired at the currentacquisition timing and the detected coordinates of the point P1 acquiredat the preceding acquisition timing is longer than a distance d (i.e.,first threshold value) (see FIG. 3B). The distance d is set to be longerthan a distance at which the player can move the tip of the touch pen 41within 1/60th of a second.

Therefore, when the distance between the detected coordinates of thepoint P2 and the detected coordinates of the point P1 is shorter thanthe distance d, it may be determined that the player has moved the touchposition from the point P1 to the point P2 in a state in which the tipof the touch pen 41 comes in contact with the operation surface 39, andthe coordinates of the touch position after the movement have beenacquired. On the other hand, when the distance between the detectedcoordinates of the point P2 and the detected coordinates of the point P1is longer than the distance d, since the player rarely removes one touchpen 41 from the point P1 and brings another touch pen 41 into contactwith the point P2 within 1/60th of a second, it may be determined thatthe player has brought one touch pen 41 into contact with the point P1,and brought another touch pen 41 into contact with another position onthe operation surface 39 without removing the one touch pen 41 from thepoint P1, and the coordinates of the midpoint between the touchpositions of the two touch pens 41 have been acquired. Therefore, whenthe game system 10 has acquired the detected coordinates of the point P2that is positioned away from the detected coordinates of the point P1 ata distance longer than the distance d in the first operation state (seeFIG. 3B), the game system 10 determines that the touch operation hasbeen performed at the point P1 and another point (second operationstate).

The game system 10 then calculates the coordinates of a point R1, oneendpoint of a straight line L being indicated by the detectedcoordinates of the point P1 acquired at the acquisition timingimmediately before the operation state has transitioned to the secondoperation state, the midpoint of the straight line L being indicated bythe detected coordinates of the point P2 acquired at the currentacquisition timing, and the other endpoint of the straight line L beingindicated by the coordinates of the point R1 (see FIG. 3C).Specifically, the game system 10 calculates an X coordinate R1X of thepoint R1 from an X coordinate P1X of the point P1 and an X coordinateP2X of the point P2 (i.e., R1X=2·P2X−P1X), and calculates a Y coordinateR1Y of the point R1 from a Y coordinate P1Y of the point P1 and a Ycoordinate P2Y of the point P2 (i.e., R1Y=2·P2Y−P1Y). More specifically,the game system 10 determines that the touch position of one touch pen41 has not moved from the point P1 (i.e., the touch operation iscontinuously performed) even if the operation state has transitioned tothe second operation state, and calculates the coordinates of the pointR1 that is estimated to be the touch position of another touch pen 41.

When the next acquisition timing has been reached in the secondoperation state, the game system 10 determines whether or not thedistance between the detected coordinates of a point P3 acquired at thecurrent acquisition timing and the detected coordinates of the point P2acquired at the preceding acquisition timing is longer than a distanced/2 (i.e., second threshold value) (see FIG. 3D). Since the detectedcoordinates acquired in the second operation state are the detectedcoordinates of the midpoint, the distance at which the midpoint can bemoved within 1/60th of a second is considered to be about half thedistance d at which the player can move the tip of the touch pen 41.Therefore, the distance d/2 is used as the threshold value. Therefore,when the distance between the detected coordinates of the point P3 andthe detected coordinates of the point P2 is shorter than the distanced/2, it may be determined that the player has moved the touch positionof one touch pen 41 or moved the touch positions of the two touch pens41 so that the midpoint between the touch positions of the two touchpens 41 has moved. The game system 10 determines that the secondoperation state is maintained when the distance between the detectedcoordinates of the point P3 and the detected coordinates of the point P2is shorter than the distance d/2 (see FIG. 3D).

However, when the player has moved the touch position of each touch pen41, the coordinates of the point considered to be the touch position ofeach touch pen 41 cannot be calculated from the coordinates of themidpoint. Therefore, when the distance between the detected coordinatesof the point P3 and the detected coordinates of the point P2 is shorterthan the distance d/2, the game system 10 determines that the player hasmaintained the touch position of the tip of one touch pen 41 at thepoint P1, and moved the tip of the other touch pen 41 from the point R1without removing the tip of the other touch pen 41 from the operationsurface 39, so that the midpoint between the touch positions of thetouch pens 41 has moved. The game system 10 then calculates thecoordinates of a point R2, one endpoint of the straight line L beingindicated by the detected coordinates of the point P1 acquired at theacquisition timing immediately before the operation state hastransitioned to the second operation state, the midpoint of the straightline L being indicated by the detected coordinates of the point P3acquired at the current acquisition timing, and the other endpoint ofthe straight line L being indicated by the coordinates of the point R2.

Specifically, the game system 10 determines that the player has notmoved the touch position of the left touch pen 41 from the point P1(i.e., has maintained the touch operation) when the midpoint has movedin the second operation state, and calculates the coordinates of thepoint R2 considered to be the touch position of the right touch pen 41for which the touch operation on the operation surface 39 has beenperformed after the touch operation using the left touch pen 41.

When the distance between the detected coordinates of the point P3 andthe detected coordinates of the point P2 is longer than the distanced/2, the game system 10 determines that the player has held one touchpen 41 on the operation surface 39, and removed the other touch pen 41from the operation surface 39, so that the coordinates of the touchposition of the one touch pen 41 have been acquired. In this case, thegame system 10 determines that the touch operation has been performedonly at the point P3 (first operation state).

The game system 10 thus determines whether the operation state is thefirst operation state, the second operation state, or the non-operationstate. If the touch position of the touch pen 41 for which the touchoperation has been performed before the touch operation using the othertouch pen 41 is maintained at the touch position in the first operationstate, the touch position of the other touch pen 41 can be calculatedbased on the detected coordinates acquired in the second operation stateeven if the touch position of the other touch pen 41 has changed.

2. Functional blocks

FIG. 4 shows an example of a functional block diagram of the game system10 according to this embodiment. Note that the game system 10 accordingto this embodiment may have a configuration in which some of theelements (sections) illustrated in FIG. 4 are omitted.

A first detection section 50 detects an operation performed using thearrow key 20, the first to fourth buttons 22 to 28, the start button 30,or the select button 32. The function of the first detection section 50may be implemented by a switch, a pressure sensor, or the like.

A second detection section 52 detects the touch position of a touchoperation performed on the operation surface 39. The function of thesecond detection section 52 may be implemented by a four-wire orfive-wire analog resistive touch panel or the like. Specifically, thesecond detection section 52 outputs a detection value corresponding to afirst position when the operation state is the first operation state inwhich a first touch operation is performed at the first position on theoperation surface 39, and outputs a detection value corresponding to themidpoint between the first position and a second position when theoperation state is the second operation state in which a second touchoperation is performed at the second position on the operation surface39 in addition to the first touch operation.

A sound detection section 54 detects external sound (e.g., player'svoice or clapping). The function of the sound detection section 54 maybe implemented by a microphone or the like.

A display section 56 outputs an image generated by the game system 10.The function of the display section 56 may be implemented by a CRTdisplay, a liquid crystal display, a plasma display, a projector, or thelike.

A sound output section 58 outputs sound generated by the game system 10.The function of the sound output section 58 may be implemented by thespeaker 36, a headphone, or the like.

An information storage medium 60 (computer-readable medium) stores aprogram for a processing section 100 to perform various processes, data,and the like. The function of the information storage medium 60 may beimplemented by a memory card, an optical disk (CD or DVD), amagneto-optical disk (MO), a magnetic disk, a hard disk, a magnetictape, or the like.

A storage section 62 functions as a work area for the processing section100, a communication section 70, and the like. The function of thestorage section 62 may be implemented by a RAM, a VRAM, or the like. Thestorage section 62 according to this embodiment includes a main storagesection 64 that is used as a work area for the processing section 100, adrawing buffer 66 in which an image displayed on the display section 56is drawn, and an object data storage section 68 that stores data of anobject (display object) displayed as an image.

The communication section 70 performs various types of control thatenables communication with the outside (e.g., server or another portableterminal). The function of the communication section 70 may beimplemented by hardware such as a processor or a communicationintegrated circuit (ASIC), a program, or the like.

A program (data) that causes a computer to function as each sectionaccording to this embodiment may be distributed to the informationstorage medium 60 (storage section 62) from an information storagemedium 60 included in a host device (server) through a network and thecommunication section 70. Use of the information storage medium 60included in the host device (server) is also included within the scopeof the invention.

The processing section 100 (processor) performs a game process, an imagegeneration process, a sound generation process, and the like based oninformation detected by the first detection section 50, the seconddetection section 52, the sound detection section 54, and the like,information received by the communication section 70, a program, data,and the like. The processing section 100 performs various processesusing the storage section 62 as a work area. The function of theprocessing section 100 may be implemented by hardware such as aprocessor (e.g., CPU or DSP) or an integrated circuit (IC) (e.g., ASIC),or a program.

The processing section 100 according to the above embodiment includes anacquisition section 102, a movement information calculation section 104,a state determination section 106, a correction section 108, a positiondetermination section 110, a period measurement section 112, a displaycontrol section 114, a communication control section 116, a drawingsection 120, and a sound generation section 130. Note that some of thesesections may be omitted.

The acquisition section 102 acquires a detected position that indicatesa position on the operation surface 39 based on the detection value fromthe second detection section 52. Specifically, the acquisition section102 acquires a detected position that indicates a position on theoperation surface 39 every 1/60th of a second (acquisition timing) byalternately acquiring the detection value corresponding to theX-coordinate component of the operation surface 39 and the detectionvalue corresponding to the Y-coordinate component of the operationsurface 39 from the second detection section 52 every 1/120th of asecond. The acquisition section 102 sequentially stores the detectedcoordinates in a detected coordinate storage section 622 of the storagesection 62 at each acquisition timing. The acquisition section 102stores “NULL” that indicates the absence of the detected coordinates inthe detected coordinate storage section 622 when the detectedcoordinates have not been acquired (i.e., the detection value has notbeen output from the second detection section 52) at the acquisitiontiming.

The movement information calculation section 104 calculates detectedmovement information (i.e., movement information about the detectedcoordinates) based on the detected coordinates stored in the detectedcoordinate storage section 622. Specifically, the movement informationcalculation section 104 calculates a detected moving distance (i.e.,distance (moving amount) between a plurality of detected coordinates)based on a plurality of detected coordinates stored at differentacquisition timings. The movement information calculation section 104calculates a detected moving direction (i.e., moving direction ofdetected coordinates) based on a plurality of detected coordinatesstored at different acquisition timings. Specifically, the movementinformation calculation section 104 calculates a detected moving vector(i.e., moving vector of detected coordinates) based on a plurality ofdetected coordinates stored at different acquisition timings. Themovement information calculation section 104 sequentially stores thedetected movement information in a detected movement information storagesection 624 of the storage section 62 each time the movement informationcalculation section 104 calculates the detected movement information.

The state determination section 106 determines whether the operationstate is the non-operation state (i.e., a touch operation is notperformed on the operation surface 39), the first operation state (i.e.,the first touch operation is performed at the first position on theoperation surface 39), or the second operation state (i.e., the secondtouch operation is performed at the second position on the operationsurface 39 in addition to the first touch operation) based on thedetection value from the second detection section 52. Specifically, thestate determination section 106 determines that the operation state isthe non-operation state when the detection value has not been outputfrom the second detection section 52, determines that the operationstate is the first operation state when the detection value has beenoutput from the second detection section 52 when the operation state isthe non-operation state, determines that the operation state is thesecond operation state when the moving amount of the detectedcoordinates exceeds the first threshold value when the operation stateis the first operation state, and determines that the operation state isthe first operation state when the moving amount of the detectedcoordinates exceeds the second threshold value when the operation stateis the second operation state.

The state determination section 106 determines that the operation stateis the non-operation state when “NULL” is stored in the detectedcoordinate storage section 622, and sets a state flag stored in thestorage section 62 to the non-operation state. The state determinationsection 106 determines that the operation state has transitioned to thefirst operation state at the current acquisition timing when thedetected coordinates have been stored at the current acquisition timingwhen the operation state is the non-operation state, and sets the stateflag stored in the storage section 62 to the first operation state.

The state determination section 106 determines that the operation statehas transitioned to the non-operation state at the current acquisitiontiming when “NULL” has been stored at the current acquisition timingwhen the operation state is the first operation state, and sets thestate flag stored in the storage section 62 to the non-operation state.The state determination section 106 determines whether or not the movingdistance calculated by the movement information calculation section 104is longer than the distance d illustrated in FIG. 3B when the detectedcoordinates have been stored at the current acquisition timing when theoperation state is the first operation state. The state determinationsection 106 determines that the first operation state is maintained whenthe moving distance calculated by the movement information calculationsection 104 is equal to or shorter than the distance d, and maintainsthe state flag stored in the storage section 62 in the first operationstate. The state determination section 106 determines that the operationstate has transitioned to the second operation state at the currentacquisition timing when the moving distance calculated by the movementinformation calculation section 104 is longer than the distance d, andsets the state flag stored in the storage section 62 to the secondoperation state.

The state determination section 106 determines that the operation statehas transitioned to the non-operation state at the current acquisitiontiming when “NULL” has been stored at the current acquisition timingwhen the operation state is the second operation state, and sets thestate flag stored in the storage section 62 to the non-operation state.The state determination section 106 determines whether or not the movingdistance calculated by the movement information calculation section 104is longer than the distance d/2 illustrated in FIG. 3D when the detectedcoordinates have been stored at the current acquisition timing when theoperation state is the second operation state. The state determinationsection 106 determines that the second operation state is maintainedwhen the moving distance calculated by the movement informationcalculation section 104 is equal to or shorter than the distance d/2,and maintains the state flag stored in the storage section 62 in thesecond operation state. The state determination section 106 determinesthat the operation state has transitioned to the first operation stateat the current acquisition timing when the moving distance calculated bythe movement information calculation section 104 is longer than thedistance d/2, and sets the state flag stored in the storage section 62to the first operation state.

The correction section 108 calculates corrected coordinates when theoperation state is the second operation state, one endpoint beingindicated by the detected coordinates in the first operation state, amidpoint being indicated by the detected coordinates in the secondoperation state, and the other endpoint being indicated by the correctedcoordinates. Specifically, the correction section 108 calculates thecorrected coordinates, one endpoint of a straight line being indicatedby the detected coordinates stored at the acquisition timing in thefirst operation state immediately before the operation state hastransitioned to the second operation state, the midpoint of the straightline being indicated by the detected coordinates stored at the currentacquisition timing, and the other endpoint of the straight line beingindicated by the corrected coordinates. More specifically, thecorrection section 108 determines that the touch position of the firsttouch operation has not moved from the touch position in the firstoperation state even if the operation state has transitioned from thefirst operation state to the second operation state, and calculates thecoordinates on the operation surface 39 that are considered to be thetouch position of the second touch operation as the correctedcoordinates. The correction section 108 sequentially stores thecorrected coordinates in a corrected coordinate storage section 626 ofthe storage section 62 at each acquisition timing.

The movement information calculation section 104 calculates correctedmovement information (i.e., movement information about correctedcoordinates) based on the corrected coordinates stored in the correctedcoordinate storage section 626. Specifically, the movement informationcalculation section 104 calculates a corrected moving distance (i.e.,distance (moving amount) between a plurality of corrected coordinates)based on a plurality of corrected coordinates stored at differentacquisition timings. The movement information calculation section 104calculates a corrected moving direction (i.e., moving direction ofcorrected coordinates) based on a plurality of corrected coordinatesstored at different acquisition timings. Specifically, the movementinformation calculation section 104 calculates a corrected moving vector(i.e., moving vector of corrected coordinates) based on a plurality ofcorrected coordinates stored at different acquisition timings. Themovement information calculation section 104 sequentially stores thecorrected movement information in the corrected movement informationstorage section 628 of the storage section 62 each time the movementinformation calculation section 104 calculates the corrected movementinformation.

The position determination section 110 determines whether or not thedetected coordinates acquired by the acquisition section 102 or thecorrected coordinates calculated by the correction section 108 coincidewith given coordinates. Specifically, the position determination section110 determines whether or not the detected coordinates or the correctedcoordinates are coordinates (i.e., given coordinates) that arepositioned within a predetermined range of the operation surface 39, ordetermines whether or not the detected coordinates or the correctedcoordinates are coordinates (i.e., given coordinates) that arepositioned within a range corresponding to the display position of anobject displayed on the first display screen 17 of the first liquidcrystal display 18.

The period measurement section 112 measures the period of the firstoperation state, the period of the second operation state, or the periodof the non-operation state. Specifically, the period measurement section112 starts to update the count value of a first counter of the storagesection 62 when the operation state has been set to the first operationstate, and resets the count value of the first counter to the initialvalue when the first operation state has ended. The period measurementsection 112 starts to update the count value of a second counter of thestorage section 62 when the operation state has been set to the secondoperation state, and resets the count value of the second counter to theinitial value when the second operation state has ended. The periodmeasurement section 112 starts to update the count value of a thirdcounter of the storage section 62 when the operation state has been setto the non-operation state, and resets the count value of the thirdcounter to the initial value when the non-operation state has ended.

The display control section 114 controls an image (object image)displayed on the display section 56 based on information detected by thefirst detection section 50, the second detection section 52, the sounddetection section 54, and the like, information received by thecommunication section 70, a program, and the like. Specifically, thedisplay control section 114 generates a display target object (e.g.character, moving object, course, building, tree, pillar, wall, map, orbackground), instructs display and the display position of the object,or causes the object to disappear, for example. Specifically, thedisplay control section 114 registers the generated object in an objectlist, transfers the object list to the drawing section 120 or the like,or deletes the object that has disappeared from the object list, forexample. The display control section 114 performs a movement process anda motion process.

The display control section 114 performs the movement process that movesthe object in an object space (movement simulation) based on informationdetected by the first detection section 50, the second detection section52, the sound detection section 54, and the like, information receivedby the communication section 70, a program (movement algorithm), data(movement data), and the like. Specifically, the display control section114 performs a simulation process that sequentially calculates objectmovement information (position, rotational angle, speed, oracceleration) every frame ( 1/60th of a second). The term “frame” refersto a time unit used when performing the object movement process or theimage generation process.

The display control section 114 performs the motion process that causesthe object to make a motion (animation) in the object space (motionsimulation) based on information detected by the first detection section50, the second detection section 52, the sound detection section 54, andthe like, information received by the communication section 70, aprogram (motion algorithm), data (motion data), and the like.Specifically, the display control section 114 performs a simulationprocess that sequentially calculates object motion information (positionor rotational angle of each part that forms the object) every frame (1/60th of a second).

In this embodiment, the display control section 114 displays objects foridentifying a first area used for the first touch operation and a secondarea used for the second touch operation on the first display screen 17of the first liquid crystal display 18. For example, the display controlsection 114 displays an object that indicates the first area and anobject that indicates the second area, or displays an object thatindicates the boundary of the first area and the boundary of the secondarea.

In this embodiment, the display control section 114 changes the color ofthe image along the moving path of the detected coordinates or thecorrected coordinates, changes the displayed image to another image,generates the object, causes the object to disappear or be deformed,moves the object, or causes the object to make a motion based on thedetected coordinates, the detected movement information, the correctedcoordinates, the corrected movement information, the count value of thefirst counter, the count value of the second counter, and the countvalue of the third counter, for example.

The communication control section 116 generates a packet transmitted toanother game system 10, designates the network address of the packettransmission destination game system 10, stores a received packet in thestorage section 62, analyzes the received packet, and controls thecommunication section 70 relating to packet transmission and reception,for example. In this embodiment, the communication control section 116generates a data packet and a command packet necessary for executing thegame via a network (e.g., Internet), and causes the communicationsection 70 to transmit and receive the data packet and the commandpacket.

The drawing section 120 performs a drawing process based on the resultsof various processes (game process) performed by the processing section100 to generate an image, and outputs the generated image to the displaysection 56.

The sound generation section 130 performs a sound generation processbased on the results of various processes performed by the processingsection 100 to generate game sound such as background music (BGM),effect sound, or voice, and outputs the generated game sound to thesound output section 58.

The image generation system according to this embodiment may be a systemdedicated to a single-player mode that allows only one player to playthe game, or may be a system that is provided with a multi-player modein which a plurality of players can play the game. When a plurality ofplayers play the game, a game image and game sound supplied to eachplayer may be generated using one terminal, or may be generated by adistributed process using a plurality of terminals (game devices orportable telephones) connected via a network (transmission line orcommunication line), for example.

3. Application Example

An example of the game executed by the game system 10 according to thisembodiment is described below. An example in which the player performs atouch operation on the operation surface 39 with the fingertip isdescribed below.

FIG. 5 is a diagram illustrating an example in which the game system 10executes a soccer PK game. In the example illustrated in FIG. 5, aplayer character 200 operated by the player is displayed on the frontside of the second display screen 33, and a computer character 202operated by the game system 10 is displayed on the interior side of thesecond display screen 33. In the example illustrated in FIG. 5, theplayer character 200 is a kicker, and the computer character 202 is agoalkeeper.

A partition object 208 that divides the operation surface 39 into a leftarea 204 (i.e., first area) and right area 206 (i.e., area) is displayedon the first display screen 17 that overlaps the operation surface 39.In the game illustrated in FIG. 5, it is recommended by a manual or thelike that the player perform a touch operation on the left area 204 withthe tip of an arbitrary finger of the left hand, and perform a touchoperation on the right area 206 with the tip of an arbitrary finger ofthe right hand.

A left sole object 210 (i.e., first area) that indicates the left soleof the player character 200, and characters (“Touch three times!” and“Hold!”) that indicate the number and the pattern of touch operations onthe left area 204 are displayed in the left area 204. The characters“Touch three times!” instruct the player to perform a touch operation(i.e., momentarily touch the left area 204 with the tip of an arbitraryfinger of the left hand) on the left area 204 three times, and thecharacters “Hold!” instruct the player to perform a hold operation(i.e., continuously touch the left area 204 with the tip of an arbitraryfinger of the left hand) (i.e., first touch operation). A right footobject 212 (i.e., second area) that indicates the right foot of theplayer character 200, three arrow objects 214 (i.e., second area) thatextend from the right foot object 212 in the upper right direction, theupper direction, and the upper left direction, respectively, andcharacters (“Slide!”) that indicate the pattern of a touch operation onthe right area 206 are displayed in the right area 206. The characters“Slide!” instruct the player to perform slide operation (i.e., move thetouch position while touching the right area 206 with the tip of anarbitrary finger of the right hand) (i.e., second touch operation) onthe right area 206. The characters “Step 1” displayed in the left area204 instruct the player to perform the touch operation on the left area204 before performing the touch operation on the right area 206, and thecharacters “Step 2” displayed in the right area 206 instruct the playerto perform the touch operation on the right area 206 after performingthe touch operation on the left area 204. Specifically, a touchoperation order display is disposed in each of the left area 204 and theright area 206.

This makes it possible for the player to easily determine the type oftouch operation required by observing the first display screen 17.Moreover, it is possible to guide the player so that the position wherethe player performs the hold operation is distant to a certain extentfrom the position where the player performs the slide operation on theoperation surface 39 by displaying the partition object 208, the leftsole object 210, and the right foot object 212, so that the accuracy ofthe operation state determination result and the corrected coordinatescan be improved.

When the player has performed the touch operation on the left area 204,an image in which the player character 200 runs up toward a ball 216each time the player performs the touch operation is displayed. When theplayer has performed the hold operation on the left area 204 afterperforming the touch operation three times, an image in which the playercharacter 200 raises the right foot backward and puts the weight on theleft is displayed. Specifically, an image in which the player character200 prepares to perform a kick operation is displayed when the playerperforms the hold operation on the left area 204. In this case, theperiod in which the player performs the hold operation (i.e., period ofthe first operation state) is counted.

When the player has started the slide operation on the right area 206,the count operation is terminated, and the moving vector of the detectedcoordinates is calculated based on the detected coordinates acquired attwelve acquisition timings (0.2 seconds (12 frames)) after the playerhas started the slide operation. The vertical moving direction of theball 216 is determined based on the period in which the player performedthe hold operation, the horizontal moving direction of the ball 216 isdetermined based on the moving direction of the detected coordinates dueto the slide operation, and the moving speed of the ball 216 isdetermined based on the moving speed (i.e., the moving amount within 0.2seconds) of the detected coordinates due to the slide operation. Animage in which the player character 200 kicks the ball 216, and the ball216 moves forward based on the determined moving direction and movingspeed is then displayed.

When the player has started the slide operation after finishing the holdoperation (i.e., after removing the tip of an arbitrary finger of theleft hand from the left area 204) (i.e., the operation state is thefirst operation state in which the touch operation is performed at oneposition on the operation surface 39), the detected coordinatescorresponding to the touch position of the slide operation are acquired.In this case, the moving speed of the ball 216 corresponding to themoving speed of the touch position of the slide operation is determinedby calculating the moving speed of the ball 216 corresponding to themoving vector of the detected coordinates. However, when the player hasstarted the slide operation before finishing the hold operation (i.e.,before removing the tip of an arbitrary finger of the left hand from theleft area 204) (i.e., the operation state is the second operation statein which the touch operation is simultaneously performed at twopositions on the operation surface 39), the detected coordinatescorresponding to the midpoint between the touch position of the holdoperation and the touch position of the slide operation are acquired. Inthis case, the moving speed of the ball 216 corresponding to the movingspeed of the touch position of the slide operation is not determined bycalculating the moving speed of the ball 216 corresponding to the movingvector of the detected coordinates.

As illustrated in FIG. 6, when the player has performed the slideoperation after finishing the hold operation at the point A, and themoving vector of the detected coordinates is a vector B1B2, the movingvector of the detected coordinates is a vector M1M2 when the player hasperformed the same slide operation while performing the hold operationat the point A. Therefore, when the player has performed the slideoperation while performing the hold operation, the moving direction ofthe detected coordinates is the same (parallel) as that when the playerhas performed the slide operation after finishing the hold operation,but the moving speed (moving amount) of the detected coordinates is halfthat when the player has performed the slide operation after finishingthe hold operation.

In order to deal with such a problem, when the player has performed theslide operation while performing the hold operation (i.e., the operationstate has been determined to be the second operation state), the gamesystem 10 according to this embodiment determines that the player hasmaintained the hold operation at the point A during a period of 0.2seconds in which the detected coordinates due to the slide operation areacquired, and calculates the corrected coordinates by correcting thedetected coordinates. For example, when the detected coordinatesindicate the coordinates of the point M1, the game system 10 calculatesthe coordinates of the point B1 as the corrected coordinates, oneendpoint of a straight line L1 being the point A, the midpoint of thestraight line L1 being the point M1, and the other endpoint of thestraight line L1 being the point B1. When the detected coordinatesindicate the coordinates of the point M2, the game system 10 calculatesthe coordinates of the point B2 as the corrected coordinates, oneendpoint of a straight line L2 being the point A, the midpoint of thestraight line L2 being the point M2, and the other endpoint of thestraight line L2 being the point 132. A vector B1B2 considered to be themoving vector of the detected coordinates due to the slide operationperformed by the player after the player has finished the hold operationis obtained by calculating the moving vector of the correctedcoordinates. The moving speed of the ball 216 corresponding to themoving speed of the touch position of the slide operation is determinedby calculating the moving speed of the ball 216 based on the movingvector of the corrected coordinates.

The game system 10 according to this embodiment can thus determine themoving speed of the ball 216 corresponding to the moving speed of thetouch position of the slide operation irrespective of whether the playerhas performed the slide operation after finishing the hold operation orperformed the slide operation while performing the hold operation.Specifically, the game system 10 according to this embodiment can movethe ball 216 so that the player is not given a wrong impression even ifthe operation state has transitioned to the second operation state inwhich the touch operation is simultaneously performed at two positionson the operation surface 39. The game system 10 according to thisembodiment can thus implement an interface environment suitable for acase where the player performs the touch operation on the operationsurface 39 of the touch panel 40 with the tip of an arbitrary finger ofeach hand.

4. Process According to this Embodiment

The flow of the process performed by the game system 10 according tothis embodiment is described below.

FIG. 7 is a flowchart illustrating the flow of an operation statetransition process that allows a transition in the operation state ofthe touch operation performed on the operation surface 39. The operationstate is set to the non-operation state (i.e., initial state) (stepS10). When the detected coordinates have not been acquired at theacquisition timing in the non-operation state (N in step S12), the stepS12 is performed again. When the detected coordinates have been acquiredat the acquisition timing in the non-operation state (Y in step S12),the operation state is set to the first operation state (step S14).

When the detected coordinates have not been acquired at the acquisitiontiming in the first operation state (N in step S16), the operation stateis set to the non-operation state (step S10). When the detectedcoordinates have been acquired at the acquisition timing in the firstoperation state (Y in step S16), it is determined whether or not themoving distance (i.e., the distance between the detected coordinatesacquired at the current acquisition timing and the detected coordinatesacquired at the preceding acquisition timing) is longer than thedistance d (step S18). When the moving distance is equal to or shorterthan the distance d (N in step S18), the step S16 is performed again.When the moving distance is longer than the distance d (Y in step S18),the operation state is set to the second operation state (step S20).

When the detected coordinates have not been acquired at the acquisitiontiming in the second operation state (N in step S22), the operationstate is set to the non-operation state (step S10). When the detectedcoordinates have been acquired at the acquisition timing in the secondoperation state (Y in step S22), it is determined whether or not themoving distance (i.e., the distance between the detected coordinatesacquired at the current acquisition timing and the detected coordinatesacquired at the preceding acquisition timing) is longer than thedistance d/2 (step S24). When the moving distance is longer than thedistance d/2 (Y in step S24), the operation state is set to the firstoperation state (step S14). When the moving distance is equal to orshorter than the distance d/2 (N in step S24), the step S22 is performedagain.

FIG. 8 is a flowchart illustrating the flow of a correction process thatcalculates the corrected coordinates by correcting the detectedcoordinates. The detected coordinates are acquired every 1/60th of asecond (acquisition timing) (step S30). When the operation state hastransitioned to the second operation state based on the detectedcoordinates acquired at the acquisition timing (Y in step S32), thedetected coordinates in the first operation state acquired at theacquisition timing immediately before the operation state hastransitioned to the second operation state are extracted from thedetected coordinate storage section 622 (step S34). The correctedcoordinates are then calculated, one endpoint being indicated by theextracted detected coordinates in the first operation state, a midpointbeing indicated by the detected coordinates acquired at the currentacquisition timing, and the other endpoint being indicated by thecorrected coordinates (step S36).

The detected coordinates are acquired at the next acquisition timing(step S38). When the second operation state does not end based on thedetected coordinates acquired at the above acquisition timing (N in stepS40), the step S36 is performed again, and the corrected coordinates arecalculated, one endpoint being indicated by the extracted detectedcoordinates in the first operation state, a midpoint being indicated bythe detected coordinates stored at the current acquisition timing, andthe other endpoint being indicated by the corrected coordinates (stepS36). When the second operation state has ended based on the detectedcoordinates acquired at the above acquisition timing (Y in step S40),the correction process is terminated.

FIG. 9 is a flowchart illustrating a flow of a movement process thatcalculates the movement information about a moving object (ball 216)displayed on the screen. When the hold operation has been performedafter the touch operation has been performed three times so that theoperation state has transitioned to the first operation state (Y in stepS50), the count value of the first counter that counts the period inwhich the hold operation is performed is updated (step S51).

When the operation state has transitioned to the non-operation state(the hold operation performed on the left area 204 illustrated in FIG. 5has ended) (Y in step S52), the count value of the first counter isstored (step S54), and the count value of the third counter that countsthe period in which the non-operation state is performed is updated(step S56). When the operation state has transitioned to the firstoperation state (the slide operation has been performed on the rightarea 206 after the hold operation performed on the left area 204illustrated in FIG. 5 has ended) (Y in step S58), the count value of thethird counter is stored (step S60), and the detected moving vector iscalculated based on the detected coordinates at the first frame and thedetected coordinates at the twelfth frame after the slide operation hasstarted (step S62). Specifically, the corrected coordinates are not usedsince the slide operation has been performed after the hold operationhas ended. The movement information about the moving object iscalculated based on the value of the first counter, the value of thethird counter, and the detected moving vector (step S63).

Specifically, the moving direction of the moving object is calculated sothat the moving direction is more closely aligned with the verticaldirection as the count value of the first counter increases (i.e., thehold operation is performed for a longer period), and the moving speedof the moving object is calculated so that the moving speed decreases asthe count value of the third counter increases (i.e., the period betweenthe hold operation and the slide operation increases). Therefore, it isnecessary to reduce the period between the hold operation and the slideoperation in order to increase the moving speed of the moving object.

When the count value of the third counter has reached a given value(e.g., a value corresponding to 3 seconds) (Y in step S64) without theoperation state transitioning to the first operation state (N in stepS58) after the count value of the third counter has been updated (stepS56) (i.e., the slide operation is not performed after 3 seconds haselapsed after the hold operation has ended), the hold operation (i.e.,the preparatory operation of the player character 200) is canceled, andthe step S50 is performed again.

When the operation state has transitioned to the second operation state(the slide operation has been performed in a state in which the holdoperation is performed on the left area 204 illustrated in FIG. 5) (Y instep S70) without the operation state transitioning to the non-operationstate in the step S52 (N in step S52), the count value of the firstcounter is stored (step S72), and the corrected moving vector iscalculated based on the corrected coordinates at the first frame and thecorrected coordinates at the twelfth frame after the slide operation hasstarted (step S74). Specifically, the corrected coordinates are usedsince the slide operation has been performed in a state in which thehold operation is performed. The movement information about the movingobject is then calculated based on the count value of the first counterand the corrected moving vector (step S76).

The player may perform the slide operation while performing the holdoperation in order to increase the moving speed of the moving object byreducing the period between the hold operation and the slide operationas much as possible. In this case, the moving object can be movedcorresponding to the touch position of the slide operation using themethod according to this embodiment.

5. Modification

The invention is not limited to the above embodiments. Variousmodifications and variations may be made. Several modifications aredescribed below. Various methods described in connection with the aboveembodiments and the following modifications may be appropriatelycombined as a control method that implements the invention.

5-1. First Modification

The above embodiments have been described taking an example in which animage in which the player character 200 raises the right foot backwardis displayed (the game progresses) when the player has performed thehold operation on the left area 204 (see FIG. 5). Note that the game maybe caused to progress based on the first touch operation performed on anarrow first area (e.g., left sole object 210). An object that indicatessuch a first area may be displayed in the peripheral area of the firstdisplay screen 17. This makes it possible to more effectively guide thetouch position of the touch operation, so that the accuracy of theoperation state determination result and the corrected coordinates canbe improved.

The above embodiments have been described taking an example in which thestate determination section 106 determines the operation state is thefirst operation state when the detection value has been output from thesecond detection section 52 when the operation state is thenon-operation state. Note that the state determination section 106 maydetermine that the operation state is the first operation state when thedetected coordinates corresponding to the first area have been acquired.

The above embodiments have been described taking an example in which thedistance d is set as the first threshold value of the moving amount ofthe detected coordinates in the first operation state, and the distanced/2 is set as the second threshold value of the moving amount of thedetected coordinates in the second operation state. Note that the firstthreshold value may be the same as the second threshold value, or thesecond threshold value may be larger than the first threshold value.

The above embodiments have been described taking an example in which thestate determination section 106 determines the operation state based onthe moving amount of the detected coordinates. However, since a pulse(overshoot) occurs as a change in voltage applied to the X-axiselectrodes or the Y-axis electrode of the touch panel 40 at a moment atwhich the operation state transitions from the first operation state tothe second operation state, and vice versa, the state determinationsection 106 may determine that the operation state has transitioned fromthe first operation state to the second operation state, and vice versa,based on occurrence of a pulse.

5-2. Second Modification

The above embodiments have been described taking an example in which themoving object is moved irrespective of whether the player has performedthe slide operation after finishing the hold operation or performed theslide operation while performing the hold operation (see the exampleillustrated in FIG. 5). Note that the moving object may not be movedwhen the player does not perform the slide operation while performingthe hold operation (i.e., the touch operation in the second operationstate).

The moving object may be moved based on a state parameter of the playercharacter or the type of player character. For example, the movingamount, the moving direction, the moving speed, and the moving accuracyof the moving object may be changed based on a fatigue level parameterof the player character. For example, when applying the game system 10to a golf game, the moving amount, the moving direction, the movingspeed, and the moving accuracy of the moving object may be changed basedon the type of club held by the player character.

The above embodiments have been described taking an example in which thecorrected coordinates are calculated in the second operation state, andthe moving object is moved based on the movement information about thecorrected coordinates. Note that the corrected coordinates may not becalculated in the second operation state. In this case, the displaycontrol section 114 may move the moving object based on the movingamount of the detected coordinates when the operation state is the firstoperation state without performing the conversion process on the movingamount of the detected coordinates, and may perform the conversionprocess on the moving amount of the detected coordinates when theoperation state is the second operation state, and move the movingobject based on the moving amount of the detected coordinates. In theexample illustrated in FIG. 5, when the player has performed the slideoperation while performing the hold operation, the moving direction ofthe detected coordinates is the same (parallel) as that when the playerhas performed the slide operation after finishing the hold operation,and the moving speed (moving amount) of the detected coordinates is halfthat when the player has performed the slide operation after finishingthe hold operation. Therefore, the moving speed and the moving amount ofthe moving object may be calculated after doubling the moving speed(moving amount) of the detected coordinates. This makes it possible tomove the moving object corresponding to the movement of the firstposition or the second position in the second operation state withoutcalculating the corrected coordinates.

5-3. Third Modification

The above embodiments have been described taking an example in which itis determined that the touch position has moved from R1 (see FIG. 3D) ina state in which the tip of the right touch pen 41 comes in contact withthe operation surface 39 while the touch position of the tip of the lefttouch pen 41 is maintained at the point P1 when the midpoint has movedfrom the point P2 to the point P3 in the second operation state, and thecoordinates of the point R2 considered to be the touch position of theright touch pen 41 are calculated. Note that it may be determined thatthe touch position has moved from R1 in a state in which the tip of theleft touch pen 41 comes in contact with the operation surface 39 whilethe touch position of the tip of the right touch pen 41 is maintained atthe point R1 when the midpoint has moved from the point P2 to the pointP3 in the second operation state, and the coordinates of the point R2considered to be the touch position of the left touch pen 41 may becalculated, as illustrated in FIG. 10D.

Specifically, the correction section 108 may calculate the correctedcoordinates when new detected coordinates have been acquired in thesecond operation state, one endpoint being indicated by the correctedcoordinates initially calculated in the second operation state, amidpoint being indicated by the detected coordinates currently acquiredin the second operation state, and the other endpoint being indicated bythe corrected coordinates. According to this configuration, when theplayer performs the hold operation at the point P1 in the left area ofthe first display screen 17, performs the hold operation at the point R1in the right area, and then performs the slide operation from the pointP1, for example, the coordinates of the point R2 (i.e., the touchposition of the slide operation) are calculated as the correctedcoordinates.

5-4. Fourth Modification

The above embodiments have been described taking an example executing asoccer PK game. Note that the above method may also be applied to a ballsport game other than a soccer game, such as a baseball game or a golfgame, and may also be applied to a sport game other than a ball sportgame, such as a ski game or a swim game.

FIGS. 11A to 11C are diagrams illustrating an example in which the gamesystem 10 executes a swim game. As illustrated in FIGS. 11A to 11C, aright arrow object 218 (i.e., first area) that extends from lower leftto upper right, and a left arrow object 220 (i.e., second area) thatextends from lower right to upper left are displayed on the firstdisplay screen 17 that also serves as the operation surface 39 so thatthe right arrow object 218 and the left arrow object 220 intersect atthe center, and the player is instructed (“Slide!”) to alternatelyperform the slide operation along the right arrow object 218 and theslide operation along the left arrow object 220. An image in which theplayer character swims is displayed on the second display screen 33 (notillustrated). The moving speed and the moving direction of the playercharacter are determined based on the timing, the speed, the movingpath, and the balance of the slide operation performed along the rightarrow object 218 and the slide operation performed along the left arrowobject 220.

As illustrated in FIG. 11A, when the player has performed the slideoperation by moving the tip of an arbitrary finger of the right handfrom lower left to upper right along the right arrow object 218, themovement of the touch position coincides with the movement of thedetected coordinates since the operation state is the first operationstate. In this case, the movement information about the player characteris determined based on the moving speed and the moving path of thedetected coordinates without calculating the corrected coordinates.

As illustrated in FIG. 11B, when the player has performed the slideoperation by moving the tip of an arbitrary finger of the left hand fromlower right to upper left along the left arrow object 220 whileperforming the hold operation at the upper right position on theoperation surface 39 with the finger of the right hand after performingthe slide operation by moving the tip of the finger of the right handalong the right arrow object 218, the movement of the touch positiondoes not coincide with the movement of the detected coordinates sincethe operation state is the second operation state. In this case, thecorrected coordinates are calculated based on the touch position and thedetected coordinates of the hold operation performed at the upper rightposition on the operation surface 39, and the movement information aboutthe player character is determined based on the moving speed and themoving path of the corrected coordinates.

As illustrated in FIG. 11C, when the player has performed the slideoperation by moving the tip of an arbitrary finger of the right handfrom lower left to upper right along the right arrow object 218 whileperforming the hold operation at the upper left position on theoperation surface 39 with the finger of the left hand after performingthe slide operation by moving the tip of the finger of the left handalong the left arrow object 220, the movement of the touch position doesnot coincide with the movement of the detected coordinates since theoperation state is the second operation state. In this case, thecorrected coordinates are calculated based on the upper left position onthe operation surface 39 and the detected coordinates, and the movementinformation about the player character is determined based on the movingspeed and the moving path of the corrected coordinates.

5-5. Fifth Modification

The above embodiments have been described taking an example in which themovement of the moving object displayed on the second display screen 33is controlled based on the detected coordinates, the detected movementinformation, the corrected coordinates, and the corrected movementinformation based on the detection value from the touch panel 40. Notethat the movement of the moving object displayed on the first displayscreen 17 (i.e., overlapping area) that also serves as the operationsurface 39 of the touch panel 40 may be controlled based on the detectedcoordinates, the detected movement information, the correctedcoordinates, and the corrected movement information.

FIGS. 12A to 12E are diagrams illustrating an example a game executed bythe game system 10. As illustrated in FIGS. 12A to 12E, a plurality ofsheep characters 222 and a wolf character 224 that attacks the sheepcharacters 222 are displayed on the first display screen 17 (operationsurface 39). The sheep characters 222 escape from the wolf character224, and the wolf character 224 runs after the sheep characters 222. Asillustrated in FIG. 12A, when the player has performed the holdoperation at the position at which the wolf character 224 is displayed,the movement of the wolf character 224 is stopped. As illustrated inFIG. 12B, when the player has performed the slide operation at theposition at which the sheep character 222 is displayed, the sheepcharacter 222 is moved to a safe place.

As illustrated in FIG. 12A, when the player has performed the holdoperation at the position at which the wolf character 224 is displayed,the coordinates of the touch position coincide with the detectedcoordinates since the operation state is the first operation state. Inthis case, whether or not the position of the detected coordinatescoincides with the display position (i.e., given position) of the wolfcharacter 224 is determined without calculating the correctedcoordinates, and the movement of the wolf character 224 is stopped whenthe position of the detected coordinates coincides with the displayposition of the wolf character 224.

As illustrated in FIG. 12B, when the player has performed the slideoperation at the position at which the sheep character 222 is displayed,the coordinates of the touch position coincide with the detectedcoordinates since the operation state is the first operation state. Inthis case, whether or not the moving path of the detected coordinatesintersects (i.e., coincides with) the display position (i.e., givenposition) of the sheep character 222 is determined without calculatingthe corrected coordinates, and the sheep character 222 is moved to asafe place when the moving path of the detected coordinates intersectsthe display position of the sheep character 222.

As illustrated in FIG. 12C, when the player has performed the slideoperation (i.e., second touch operation) at the position at which thesheep character 222 is displayed while performing the hold operation atthe position at which the wolf character 224 is displayed, thecoordinates of the touch position do not coincide with the detectedcoordinates since the operation state is the second operation state. Inthis case, the corrected coordinates are calculated based on thedetected coordinates and the touch position of the hold operation on thewolf character 224, whether or not the moving path of the correctedcoordinates intersects (i.e., coincides with) the display position(i.e., given position) of the sheep character 222 is determined, and thesheep character 222 is moved to a safe place when the moving path of thecorrected coordinates intersects the display position of the sheepcharacter 222.

As illustrated in FIG. 12D, when the player has performed the holdoperation (i.e., first touch operation) at the position at which thewolf character 224 is displayed under given conditions, the movement ofthe wolf character 224 may be stopped. When the player has performed thehold operation (i.e., second touch operation) at the position at whichthe sheep character 222 is displayed while performing the hold operationat the position at which the wolf character 224 is displayed, themovement of the sheep character 222 may be stopped. In FIG. 12D, sincethe operation state is the second operation state, the coordinates ofthe touch position do not coincide with the detected coordinates. Inthis case, the corrected coordinates are calculated based on thedetected coordinates and the touch position of the hold operationperformed at the position at which the wolf character 224 is displayed,and whether or not the corrected coordinates coincide with thecoordinates of the display position (i.e., given position) of the sheepcharacter 222 is determined. The movement of the sheep character 222 maybe stopped when the corrected coordinates coincide with the coordinatesof the display position of the sheep character 222. When the player hasperformed the slide operation from the position at which the player hasperformed the hold operation on the wolf character 224, the touchposition of the slide operation may be calculated as the correctedcoordinates, and the wolf character 224 may be moved to follow the slideoperation based on the corrected coordinates (see FIG. 10D).

5-6. Sixth Modification

The above embodiments have been described taking an example in which themovement of the moving object is controlled based on the detectedcoordinates, the detected movement information, the correctedcoordinates, and the corrected movement information based on thedetection value from the touch panel 40. Note that a character or apicture may be drawn corresponding to the moving path of the touchoperation based on the detected coordinates, the detected movementinformation, the corrected coordinates, and the corrected movementinformation.

As illustrated in FIG. 13, when the player has drawn a curve (i.e.,second touch operation) on the operation surface 39 using the righttouch pen 41 while performing the hold operation (i.e., first touchoperation) using the left touch pen 41 at the lower left position of thefirst display screen 17 at which a button 226 (i.e., first area) isdisplayed, the coordinates of the touch position do not coincide withthe detected coordinates since the operation state is the secondoperation state. In this case, the corrected coordinates are calculatedbased on the detected coordinates and the touch position of the holdoperation performed on the button 226, and a curve 228 is drawn alongthe moving path of the corrected coordinates.

5-7. Seventh Modification

The above embodiments have been described taking an example in which animage is controlled based on the detected coordinates, the detectedmovement information, the corrected coordinates, and the correctedmovement information based on the detection value from the touch panel40. Note that coincidence with a given position may be determined basedon the detected coordinates, the detected movement information, thecorrected coordinates, and the corrected movement information, and soundmay be controlled, or the game calculations may be performed.

As illustrated in FIG. 14, a quiz may be displayed when the playerperforms the hold operation (i.e., first touch operation) using the lefttouch pen 41 at the lower left position of the first display screen 17at which the button 226 (i.e., first area) is displayed, and the playermay perform an answer operation by performing a touch operation on acircular button display 230 (i.e., second area) displayed at the upperright position of the first display screen 17 or a cross-shaped buttondisplay 232 (i.e., second area) displayed at the lower right position ofthe first display screen 17. Whether or not the touch position of thetouch operation coincides with the display position of the buttoncorresponding to the correct answer may be determined, and a process(e.g., outputs sound that indicate a correct answer, or adds points)other than the display control process may be performed when the touchposition of the touch Operation coincides with the display position ofthe button corresponding to the correct answer.

As illustrated in FIG. 14, when the player has performed the touchoperation on the circular button display 230 or the cross-shaped buttondisplay 232 using the right touch pen 41 while performing the holdoperation at the display position of the button 226 using the left touchpen 41, the coordinates of the touch position do not coincide with thedetected coordinates since the operation state is the second operationstate. In this case, the corrected coordinates are calculated based onthe detected coordinates and the touch position of the hold operationperformed on the button 226, and whether or not the correctedcoordinates coincide with the coordinates of the display position of thecircular button display 230 or the cross-shaped button display 232 isdetermined.

5-8. Eighth Modification

Whether or not the moving path of the detected coordinates in the secondoperation state coincide with a given moving path may be determined. Forexample, an equilateral triangle and a square having an identical sidelength may be displayed on the first display screen 17, and data thatindicates the moving path of the midpoint when the player traces eachside of the equilateral triangle with the tip of an arbitrary finger ofthe left hand, and traces each side of the square with the tip of anarbitrary finger of the right hand may be provided in advance. Whetheror not the moving path of the detected coordinates in the secondoperation state coincide with such a moving path may be determined. Inthis case, the equilateral triangle and the square may be displayed sideby side on the first display screen 17 to guide the player. The movingpath may have a given width taking account of a difference in movementof the fingers.

Although only some embodiments of the invention have been described indetail above, those skilled in the art would readily appreciate thatmany modifications are possible in the embodiments without materiallydeparting from the novel teachings and advantages of the invention.Accordingly, such modifications are intended to be included within thescope of the invention.

1. A program stored in a non-transitory computer-readable informationstorage medium, the program controlling an image displayed on a displayscreen of a display section based on a detection value output from adetection section, the detection section outputting the detection valuecorresponding to a first position when an operation state of a touchoperation performed on an operation surface is a first operation statein which a first touch operation is performed at the first position onthe operation surface, and outputting the detection value correspondingto a midpoint between the first position and a second position when theoperation state is a second operation state in which a second touchoperation is performed at the second position on the operation surfacein addition to the first touch operation, the program causing a computerto function as: an acquisition section that acquires a detected positionbased on the detection value, the detected position indicating aposition on the operation surface; a state determination section thatdetermines whether the operation state is the first operation state orthe second operation state based on the detection value; a correctionsection that calculates a corrected position when the operation state isthe second operation state, one endpoint being indicated by the detectedposition acquired in the first operation state, a midpoint beingindicated by the detected position acquired in the second operationstate, and the other endpoint being indicated by the corrected position;and a display control section that controls the image based on thecorrected position.
 2. A program stored in a non-transitorycomputer-readable information storage medium, the program controlling animage displayed on a display screen of a display section based on adetection value output from a detection section, the detection sectionoutputting the detection value corresponding to a first position when anoperation state of a touch operation performed on an operation surfaceis a first operation state in which a first touch operation is performedat the first position on the operation surface, and outputting thedetection value corresponding to a midpoint between the first positionand a second position when the operation state is a second operationstate in which a second touch operation is performed at the secondposition on the operation surface in addition to the first touchoperation, the program causing a computer to function as: an acquisitionsection that acquires a detected position based on the detection value,the detected position indicating a position on the operation surface; astate determination section that determines whether the operation stateis the first operation state or the second operation state based on thedetection value; a correction section that calculates a correctedposition when the operation state is the second operation state, oneendpoint being indicated by the detected position in the first operationstate, a midpoint being indicated by the detected position in the secondoperation state, and the other endpoint being indicated by the correctedposition; a position determination section that determines whether ornot the corrected position coincides with a given position; and adisplay control section that controls the image.
 3. The program asdefined in claim 2, wherein the display control section controls theimage based on a determination result of the position determinationsection.
 4. The program as defined in claim 1, wherein the correctionsection calculates the corrected position when a new detected positionhas been acquired in the second operation state, one endpoint beingindicated by the detected position acquired in the first operationstate, a midpoint being indicated by the detected position currentlyacquired in the second operation state, and the other endpoint beingindicated by the corrected position.
 5. The program as defined in claim2, wherein the correction section calculates the corrected position whena new detected position has been acquired in the second operation state,one endpoint being indicated by the detected position acquired in thefirst operation state, a midpoint being indicated by the detectedposition currently acquired in the second operation state, and the otherendpoint being indicated by the corrected position.
 6. The program asdefined in claim 3, wherein the correction section calculates thecorrected position when a new detected position has been acquired in thesecond operation state, one endpoint being indicated by the detectedposition acquired in the first operation state, a midpoint beingindicated by the detected position currently acquired in the secondoperation state, and the other endpoint being indicated by the correctedposition.
 7. The program as defined in claim 1, wherein the correctionsection calculates the corrected position when a new detected positionhas been acquired in the second operation state, one endpoint beingindicated by the corrected position initially calculated in the secondoperation state, a midpoint being indicated by the detected positioncurrently acquired in the second operation state, and the other endpointbeing indicated by the corrected position.
 8. The program as defined inclaim 2, wherein the correction section calculates the correctedposition when a new detected position has been acquired in the secondoperation state, one endpoint being indicated by the corrected positioninitially calculated in the second operation state, a midpoint beingindicated by the detected position currently acquired in the secondoperation state, and the other endpoint being indicated by the correctedposition.
 9. The program as defined in claim 1, wherein the programcauses the computer to further function as a movement informationcalculation section that calculates movement information about thecorrected position when the corrected position has changed; and whereinthe display control section controls the image based on the movementinformation about the corrected position.
 10. The program as defined inclaim 2, wherein the program causes the computer to further function asa movement information calculation section that calculates movementinformation about the corrected position when the corrected position haschanged; and wherein the display control section controls the imagebased on the movement information about the corrected position.
 11. Theprogram as defined in claim 1, wherein the program causes the computerto further function as a period measurement section that measures aperiod of the first operation state; and wherein the display controlsection controls the image based on the period of the first operationstate.
 12. The program as defined in claim 2, wherein the program causesthe computer to further function as a period measurement section thatmeasures a period of the first operation state; and wherein the displaycontrol section controls the image based on the period of the firstoperation state.
 13. The program as defined in claim 1, wherein thedisplay control section displays a display object in an overlapping areaof the display screen that overlaps the operation surface, the displayobject identifying a first area where the first touch operation shouldbe performed, and a second area where the second touch operation shouldbe performed.
 14. The program as defined in claim 2, wherein the displaycontrol section displays a display object in an overlapping area of thedisplay screen that overlaps the operation surface, the display objectidentifying a first area where the first touch operation should beperformed, and a second area where the second touch operation should beperformed.
 15. The program as defined in claim 1, wherein the statedetermination section determines that the operation state is anon-operation state in which the touch operation is not performed on theoperation surface when the detection value is not output, determinesthat the operation state is the first operation state when the detectionvalue has been output when the operation state is the non-operationstate, and determines that the operation state is the second operationstate when a moving amount of the detected position has exceeded a firstthreshold value when the operation state is the first operation state.16. The program as defined in claim 2, wherein the state determinationsection determines that the operation state is a non-operation state inwhich the touch operation is not performed on the operation surface whenthe detection value is not output, determines that the operation stateis the first operation state when the detection value has been outputwhen the operation state is the non-operation state, and determines thatthe operation state is the second operation state when a moving amountof the detected position has exceeded a first threshold value when theoperation state is the first operation state.
 17. The program as definedin claim 1, wherein the state determination section determines that theoperation state is the first operation state when a moving amount of thedetected position has exceeded a second threshold value when theoperation state is the second operation state.
 18. The program asdefined in claim 2, wherein the state determination section determinesthat the operation state is the first operation state when a movingamount of the detected position has exceeded a second threshold valuewhen the operation state is the second operation state.
 19. Anon-transitory computer-readable information storage medium for storingthe program as defined in claim
 1. 20. A non-transitorycomputer-readable information storage medium for storing the program asdefined in claim
 2. 21. An image control system that controls an imagedisplayed on a display screen of a display section based on a detectionvalue output from a detection section, the detection section outputtingthe detection value corresponding to a first position when an operationstate of a touch operation performed on an operation surface is a firstoperation state in which a first touch operation is performed at thefirst position on the operation surface, and outputting the detectionvalue corresponding to a midpoint between the first position and asecond position when the operation state is a second operation state inwhich a second touch operation is performed at the second position onthe operation surface in addition to the first touch operation, theimage control system comprising: an acquisition section that acquires adetected position based on the detection value, the detected positionindicating a position on the operation surface; a state determinationsection that determines whether the operation state is the firstoperation state or the second operation state based on the detectionvalue; a correction section that calculates a corrected position whenthe operation state is the second operation state, one endpoint beingindicated by the detected position acquired in the first operationstate, a midpoint being indicated by the detected position acquired inthe second operation state, and the other endpoint being indicated bythe corrected position; and a display control section that controls theimage based on the corrected position.
 22. An image control system thatcontrols an image displayed on a display screen of a display sectionbased on a detection value output from a detection section, thedetection section outputting the detection value corresponding to afirst position when an operation state of a touch operation performed onan operation surface is a first operation state in which a first touchoperation is performed at the first position on the operation surface,and outputting the detection value corresponding to a midpoint betweenthe first position and a second position when the operation state is asecond operation state in which a second touch operation is performed atthe second position on the operation surface in addition to the firsttouch operation, the image control system comprising: an acquisitionsection that acquires a detected position based on the detection value,the detected position indicating a position on the operation surface; astate determination section that determines whether the operation stateis the first operation state or the second operation state based on thedetection value; a correction section that calculates a correctedposition when the operation state is the second operation state, oneendpoint being indicated by the detected position in the first operationstate, a midpoint being indicated by the detected position in the secondoperation state, and the other endpoint being indicated by the correctedposition; a position determination section that determines whether ornot the corrected position coincides with a given position; and adisplay control section that controls the image.